package com.ctshk.rpc.guide.dto;

import com.ctshk.rpc.guide.req.GuideCollarCertificatesReq;
import com.ctshk.rpc.guide.req.LanguageReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 导领信息表
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-02-25
 */
@Data
@ApiModel(value="GuideCollarQueryDTO对象", description="导领信息DTO")
public class GuideCollarQueryDTO implements Serializable {


    @ApiModelProperty(value = "类型（1：领队 2：导游）")
    private Integer type;

    @ApiModelProperty(value = "中文姓")
    private String cnSurname;

    @ApiModelProperty(value = "中文名")
    private String cnName;

    @ApiModelProperty(value = "中文姓名")
    private String cnUserName;

    @ApiModelProperty(value = "英文姓")
    private String enSurname;

    @ApiModelProperty(value = "英文名")
    private String enName;

    @ApiModelProperty(value = "英文姓名")
    private String enUserName;

    @ApiModelProperty(value = "员工号")
    private String employeeNumber;

    @ApiModelProperty(value = "座机")
    private String telephone;

    @ApiModelProperty(value = "座机号区号")
    private String telephoneAreaCode;

    @ApiModelProperty(value = "内地手机")
    private String mainlandMobile;

    @ApiModelProperty(value = "内地手机区号")
    private String mainlandMobileAreaCode;

    @ApiModelProperty(value = "性别（1：男 2：女）")
    private Integer gender;

    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;

    @ApiModelProperty(value = "出生城市id")
    private Long birthCityId;

    @ApiModelProperty(value = "出生城市")
    private String birthCity;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "联系人名称")
    private String contactsName;

    @ApiModelProperty(value = "联系人电话区号")
    private String contactsTelephoneAreaCode;

    @ApiModelProperty(value = "联系人电话")
    private String contactsTelephone;

    @ApiModelProperty(value = "中文居住地址")
    private String cnAddress;

    @ApiModelProperty(value = "英文居住地址")
    private String enAddress;

    @ApiModelProperty(value = "领队等级id")
    private Long leaderLevelId;

    @ApiModelProperty(value = "领队等级")
    private String leaderLevelName;

    @ApiModelProperty(value = "领队类型id")
    private Long leaderTypeId;

    @ApiModelProperty(value = "领队类型名称")
    private String leaderTypeName;

    @ApiModelProperty(value = "入职时间")
    private LocalDate entryTime;

    @ApiModelProperty(value = "精通语言")
    private List<LanguageReq> proficiencyLanguage;

    @ApiModelProperty(value = "合同年限")
    private Integer contractPeriod;

    @ApiModelProperty(value = "分社id")
    private Long departmentId;

    @ApiModelProperty(value = "分社名称")
    private String departmentName;

    @ApiModelProperty(value = "薪水")
    private BigDecimal salary;

    @ApiModelProperty(value = "入行时间")
    private LocalDate industryTime;

    @ApiModelProperty(value = "教育程度id")
    private Long educationLevelId;

    @ApiModelProperty(value = "教育程度")
    private String educationLevel;

    @ApiModelProperty(value = "领队方言")
    private List<LanguageReq> dialect;

    @ApiModelProperty(value = "介绍人名称")
    private String introducer;

    @ApiModelProperty(value = "介绍人电话区号")
    private String introducerTelephoneAreaCode;

    @ApiModelProperty(value = "介绍人电话")
    private String introducerTelephone;

    @ApiModelProperty(value = "介绍人描述")
    private String introducerDescribe;

    @ApiModelProperty(value = "领队证件")
    private List<GuideCollarCertificatesReq> certificatesList;

    @ApiModelProperty(value = "保险名称")
    private String insurance_name;

    @ApiModelProperty(value = "保单号")
    private String policyNumber;

    @ApiModelProperty(value = "起保日期")
    private LocalDate startDate;

    @ApiModelProperty(value = "终保日期")
    private LocalDate finalInsuranceDate;

    @ApiModelProperty(value = "保险图片url")
    private String insurancePictureUrl;

    @ApiModelProperty(value = "升职时间")
    private LocalDate bePromotedDare;

    @ApiModelProperty(value = "升职原因")
    private String bePromotedReason;

    @ApiModelProperty(value = "黑名单原因")
    private String blacklistReason;

    @ApiModelProperty(value = "离职原因")
    private String quitReason;

    @ApiModelProperty(value = "离职生效时间")
    private LocalDate quitDate;

    @ApiModelProperty(value = "年假")
    private Float annualLeave;

    @ApiModelProperty(value = "劳假")
    private Float laborLeave;

    @ApiModelProperty(value = "月假")
    private Float monthlyLeave;
}
